package zww.study.basic;

import java.util.ArrayList;

public class ArrayListStudy {
    /*
     *  集合和数组的区别：
     *  数组的容量是固定的，集合容量是可变的
     * */

    /*
     *  构造方法 ArrayList（）
     *  添加方法 add(E element) 指定元素追加到集合末尾
     *          add(int index,E element) 在结合的指定位置插入指定元素
     *   ArrayList：可调整大小的数组实现
     *              一种特殊的数据类型，泛型
     *   成员方法：
     *       boolean remove(Object o):删除指定的元素，返回删除是否成功
     *       remove(int index) : 删除指定索引处的元素，返回被删除的元素
     *       set(int index,E element):修改指定所引出的元素，返回被修改的元素
     *       get(int index):返回指定索引处的元素
     *       size() : 返回集合中的元素的个数，返回int型
     * */
    public static void main(String[] args) {
        ArrayList<String> array = new ArrayList<String>();
        array.add("hello");
        array.add("world");
        array.add("zww");
        array.add("lt");
        System.out.println(array);
        //public boolean remove(Object o)：删除指定的元素，返回删除是否成功
        array.remove("hello");
        System.out.println(array);
        //public E remove(int index)：删除指定索引处的元素，返回被删除的元素
        array.remove(0);
        //IndexOutOfBoundsException -- 超出索引
//        System.out.println(array.remove(10));
        //public E set(int index,E element)：修改指定索引处的元素，返回被修改的元素
        array.set(1, "java");
        System.out.println(array.set(1, "java"));
        //public E get(int index)：返回指定索引处的元素
        System.out.println(array.get(1));
        //public int size()：返回集合中的元素的个数
        System.out.println(array.size());
        //输出集合
        System.out.println("array:" + array);
        for (int i = 0; i < array.size(); i++) {
            System.out.println(array.get(i));
        }

        StudentStandards stu1 = new StudentStandards("ZWW", 20);
        StudentStandards stu2 = new StudentStandards("JJJ", 22);
        StudentStandards stu3 = new StudentStandards("LJJ", 23);
        // ArrayList<StudentStandards> <> 这里是指对应集合元素对应的数据类型
        // 集合和数组一样,要求元素类型相同
        ArrayList<StudentStandards> arrlist2 = new ArrayList<>();
        arrlist2.add(stu1);
        arrlist2.add(stu2);
        arrlist2.add(stu3);
        //遍历集合，采用通用遍历格式实现
        for (int i = 0; i < arrlist2.size(); i++) {
            StudentStandards s = arrlist2.get(i);
            System.out.println(s.getName() + "--" + s.getAge());
        }
    }
}
